package com.dbdata.move.model;

// Generated cafuc by Hibernate Tools 4

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TrainPlan generated by hbm2java
 */
@Entity
@Table(name = "train_plan")
public class TrainPlan implements java.io.Serializable {

	private Long id;
	private StudentRecommend studentRecommend;
	private MainPoint mainPoint;
	private StudentResit studentResit;
	private SkillVerify skillVerify;
	private UserBaseInfo userBaseInfoByStudentId;
	private QualityInspection qualityInspection;
	private UserBaseInfo userBaseInfoByTeacherId;
	private UserBaseInfo userBaseInfoByCreateUserId;
	private String planName;
	private Boolean readyFlag;
	private Boolean planExecuteFlag;
	private Date createTime;
	private byte planType;
	private boolean send;
	private byte planClassify;
	private boolean abandon;
	private int studyNum;
	private boolean flyPlan;
	private boolean oralPlan;
	private Boolean oralExecuteFlag;
	private Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans = new HashSet<SimulatorTaskDocDetailsTrainPlan>(
			0);
	private Set<PlanRecordTopic> planRecordTopics = new HashSet<PlanRecordTopic>(
			0);
	private Set<TaskDocDetails> taskDocDetailses = new HashSet<TaskDocDetails>(
			0);
	private Set<PlanTopicSubject> planTopicSubjects = new HashSet<PlanTopicSubject>(
			0);

	public TrainPlan() {
	}

	public TrainPlan(String planName, Date createTime, byte planType,
			boolean send, byte planClassify, boolean abandon, int studyNum,
			boolean flyPlan, boolean oralPlan) {
		this.planName = planName;
		this.createTime = createTime;
		this.planType = planType;
		this.send = send;
		this.planClassify = planClassify;
		this.abandon = abandon;
		this.studyNum = studyNum;
		this.flyPlan = flyPlan;
		this.oralPlan = oralPlan;
	}

	public TrainPlan(
			StudentRecommend studentRecommend,
			MainPoint mainPoint,
			StudentResit studentResit,
			SkillVerify skillVerify,
			UserBaseInfo userBaseInfoByStudentId,
			QualityInspection qualityInspection,
			UserBaseInfo userBaseInfoByTeacherId,
			UserBaseInfo userBaseInfoByCreateUserId,
			String planName,
			Boolean readyFlag,
			Boolean planExecuteFlag,
			Date createTime,
			byte planType,
			boolean send,
			byte planClassify,
			boolean abandon,
			int studyNum,
			boolean flyPlan,
			boolean oralPlan,
			Boolean oralExecuteFlag,
			Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans,
			Set<PlanRecordTopic> planRecordTopics,
			Set<TaskDocDetails> taskDocDetailses,
			Set<PlanTopicSubject> planTopicSubjects) {
		this.studentRecommend = studentRecommend;
		this.mainPoint = mainPoint;
		this.studentResit = studentResit;
		this.skillVerify = skillVerify;
		this.userBaseInfoByStudentId = userBaseInfoByStudentId;
		this.qualityInspection = qualityInspection;
		this.userBaseInfoByTeacherId = userBaseInfoByTeacherId;
		this.userBaseInfoByCreateUserId = userBaseInfoByCreateUserId;
		this.planName = planName;
		this.readyFlag = readyFlag;
		this.planExecuteFlag = planExecuteFlag;
		this.createTime = createTime;
		this.planType = planType;
		this.send = send;
		this.planClassify = planClassify;
		this.abandon = abandon;
		this.studyNum = studyNum;
		this.flyPlan = flyPlan;
		this.oralPlan = oralPlan;
		this.oralExecuteFlag = oralExecuteFlag;
		this.simulatorTaskDocDetailsTrainPlans = simulatorTaskDocDetailsTrainPlans;
		this.planRecordTopics = planRecordTopics;
		this.taskDocDetailses = taskDocDetailses;
		this.planTopicSubjects = planTopicSubjects;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID", unique = true, nullable = false)
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "STUDENT_RECOMMEND_ID")
	public StudentRecommend getStudentRecommend() {
		return this.studentRecommend;
	}

	public void setStudentRecommend(StudentRecommend studentRecommend) {
		this.studentRecommend = studentRecommend;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "MAIN_POINT_ID")
	public MainPoint getMainPoint() {
		return this.mainPoint;
	}

	public void setMainPoint(MainPoint mainPoint) {
		this.mainPoint = mainPoint;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "STUDENT_RESIT_ID")
	public StudentResit getStudentResit() {
		return this.studentResit;
	}

	public void setStudentResit(StudentResit studentResit) {
		this.studentResit = studentResit;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "SKILL_ID")
	public SkillVerify getSkillVerify() {
		return this.skillVerify;
	}

	public void setSkillVerify(SkillVerify skillVerify) {
		this.skillVerify = skillVerify;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "STUDENT_ID")
	public UserBaseInfo getUserBaseInfoByStudentId() {
		return this.userBaseInfoByStudentId;
	}

	public void setUserBaseInfoByStudentId(UserBaseInfo userBaseInfoByStudentId) {
		this.userBaseInfoByStudentId = userBaseInfoByStudentId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "QUALITY_ID")
	public QualityInspection getQualityInspection() {
		return this.qualityInspection;
	}

	public void setQualityInspection(QualityInspection qualityInspection) {
		this.qualityInspection = qualityInspection;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "TEACHER_ID")
	public UserBaseInfo getUserBaseInfoByTeacherId() {
		return this.userBaseInfoByTeacherId;
	}

	public void setUserBaseInfoByTeacherId(UserBaseInfo userBaseInfoByTeacherId) {
		this.userBaseInfoByTeacherId = userBaseInfoByTeacherId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CREATE_USER_ID")
	public UserBaseInfo getUserBaseInfoByCreateUserId() {
		return this.userBaseInfoByCreateUserId;
	}

	public void setUserBaseInfoByCreateUserId(
			UserBaseInfo userBaseInfoByCreateUserId) {
		this.userBaseInfoByCreateUserId = userBaseInfoByCreateUserId;
	}

	@Column(name = "PLAN_NAME", nullable = false, length = 65535)
	public String getPlanName() {
		return this.planName;
	}

	public void setPlanName(String planName) {
		this.planName = planName;
	}

	@Column(name = "READY_FLAG")
	public Boolean getReadyFlag() {
		return this.readyFlag;
	}

	public void setReadyFlag(Boolean readyFlag) {
		this.readyFlag = readyFlag;
	}

	@Column(name = "PLAN_EXECUTE_FLAG")
	public Boolean getPlanExecuteFlag() {
		return this.planExecuteFlag;
	}

	public void setPlanExecuteFlag(Boolean planExecuteFlag) {
		this.planExecuteFlag = planExecuteFlag;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CREATE_TIME", nullable = false, length = 19)
	public Date getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Column(name = "PLAN_TYPE", nullable = false)
	public byte getPlanType() {
		return this.planType;
	}

	public void setPlanType(byte planType) {
		this.planType = planType;
	}

	@Column(name = "SEND", nullable = false)
	public boolean isSend() {
		return this.send;
	}

	public void setSend(boolean send) {
		this.send = send;
	}

	@Column(name = "PLAN_CLASSIFY", nullable = false)
	public byte getPlanClassify() {
		return this.planClassify;
	}

	public void setPlanClassify(byte planClassify) {
		this.planClassify = planClassify;
	}

	@Column(name = "ABANDON", nullable = false)
	public boolean isAbandon() {
		return this.abandon;
	}

	public void setAbandon(boolean abandon) {
		this.abandon = abandon;
	}

	@Column(name = "STUDY_NUM", nullable = false)
	public int getStudyNum() {
		return this.studyNum;
	}

	public void setStudyNum(int studyNum) {
		this.studyNum = studyNum;
	}

	@Column(name = "FLY_PLAN", nullable = false)
	public boolean isFlyPlan() {
		return this.flyPlan;
	}

	public void setFlyPlan(boolean flyPlan) {
		this.flyPlan = flyPlan;
	}

	@Column(name = "ORAL_PLAN", nullable = false)
	public boolean isOralPlan() {
		return this.oralPlan;
	}

	public void setOralPlan(boolean oralPlan) {
		this.oralPlan = oralPlan;
	}

	@Column(name = "ORAL_EXECUTE_FLAG")
	public Boolean getOralExecuteFlag() {
		return this.oralExecuteFlag;
	}

	public void setOralExecuteFlag(Boolean oralExecuteFlag) {
		this.oralExecuteFlag = oralExecuteFlag;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trainPlan")
	public Set<SimulatorTaskDocDetailsTrainPlan> getSimulatorTaskDocDetailsTrainPlans() {
		return this.simulatorTaskDocDetailsTrainPlans;
	}

	public void setSimulatorTaskDocDetailsTrainPlans(
			Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans) {
		this.simulatorTaskDocDetailsTrainPlans = simulatorTaskDocDetailsTrainPlans;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trainPlan")
	public Set<PlanRecordTopic> getPlanRecordTopics() {
		return this.planRecordTopics;
	}

	public void setPlanRecordTopics(Set<PlanRecordTopic> planRecordTopics) {
		this.planRecordTopics = planRecordTopics;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trainPlan")
	public Set<TaskDocDetails> getTaskDocDetailses() {
		return this.taskDocDetailses;
	}

	public void setTaskDocDetailses(Set<TaskDocDetails> taskDocDetailses) {
		this.taskDocDetailses = taskDocDetailses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trainPlan")
	public Set<PlanTopicSubject> getPlanTopicSubjects() {
		return this.planTopicSubjects;
	}

	public void setPlanTopicSubjects(Set<PlanTopicSubject> planTopicSubjects) {
		this.planTopicSubjects = planTopicSubjects;
	}

}
